In the field of computing, one can browse tree structures and may need these to be displayed in a graphical user interface (GUI). Trees are used to implement file systems via computer programs, such as a file manager or a file browser that may provide a user an interface to work with the file systems. The most common operations that the file manager performs on files are create, open, edit, view, rename, move, and so on. The files are typically displayed in a hierarchy, which can be presented as a tree data structure. The tree data structure is an acyclic connected graph, where each node has a set of zero or more children nodes, and at most one parent node. A graph may be defined by its nodes, collectively denoted V for vertices, and its edges collectively denoted E. A graph G is then defined as G=(V, E). A graph is considered connected because all nodes are coupled through direct connections or indirect connections. All nodes have one parent except the root node that has zero parents. A graph is acyclic as no traversal along the edges returns to the starting node. One can form a sub-tree from a node, N, in the tree by deleting the edge from N to its parent, and considering the nodes which remain connected (directly or indirectly) to N. There are various ways of visually representing tree data structures. Generally, they are variations or combinations of a few basic styles: 1) classical node-linked diagrams that are connected with line segments; 2) nested sets that use containment to show parenthood; 3) layered diagrams that use alignment; 4) diagrams that use indentation (or outlines), such as eXtensible Markup Language (XML) files; and 5) nested parentheses, e.g., ((employee, manager) team) company. Trees are used in depicting the content of multi-dimensional data sources, Also known as OnLine Analytical Processing (OLAP) data source, the user interface and the data sources, collectively OLAP tools are commercially available, for example, SAP® BusinessObjects™ Voyager, available from SAP AG. OLAP tools include functionality for report generation, data exploration and are otherwise suited to ad hoc analyses. OLAP generally refers to a technique of providing fast analysis of shared multidimensional information stored in a database. The OLAP systems provide a multidimensional conceptual view of data, including full support for hierarchies and multiple hierarchies. This framework is used because it is a logical way to analyze businesses, organizations and otherwise engage in business intelligence activities. These hierarchies are trees.
It can be inefficient and time consuming to browse large hierarchical data structures via standard browsers. A user faced with an unfamiliar large hierarchy for the first time is forced to start drilling into the structure from top to bottom until the desired nodes are found. “Drilling in” in a data structure refers to focusing on a particular sub-tree, temporarily ignoring the nodes that are not part of that sub-tree. It can include displaying data in the sub-tree not previously displayed before focusing on the sub-tree. “Drilling out” in a tree data structure refers to expanding the set of nodes that are being examined by including the parent and sibling nodes of the sub-tree that is currently being examined. Drilling in the data structure is a slow process that requires a lot of time, user attention, and user selection of nodes. The main drawback is that the user is not able to see the “big picture” of the data structure during exploration and is uncertain which branch of the tree to follow. Often times, the leaf nodes at the lowest level in the data structures represent the most important data. The user has to navigate in the large tree structure to find these leaf nodes and could easily lose context of where he or she is in the tree.